QuickSight에서 PostgreSQL RDS 데이터 세트를 생성할때 발생하는 GENERIC_SQL_EXCEPTION 오류 해결
Amazon QuickSight에서 PostgreSQL RDS의 데이트 세트를 생성할 때 아래와 같은 에러가 발생하는 경우가 있습니다.
본 블로그에서는 이와 같은 에러를 해결하는 방법에 대해 소개하고자 합니다.
에러 내용
QuickSight와 RDS의 연결을 위한 설정을 마치고 데이터 세트를 만들기 위해 액세스를 시도하면 다음과 같은 에러가 발생합니다.
sourceErrorCode: GENERIC_SQL_EXCEPTION
sourceErrorMessage: The authentication type 10 is not supported. Check that you have configured the pg_hba.conf file to include the client's IP address or subnet, and that it is using an authentication scheme supported by the driver.
원인
위와 같은 에러는 QuickSight 와 Postgre RDS의 비밀번호 암호화 알고리즘의 차이로 인해 발생하는 에러입니다.
PostgreSQL 14 이상의 경우 scram-sha-256
암호화 알고리즘을 사용하지만,
QuickSight는 MD5
알고리즘을 사용하기 때문에 접속시 에러가 발생하는 것입니다.
이는 QuickSight가 사용하는 JDBC 42.0 드라이버가 MD5 알고리즘을 지원하기 때문이며 Postgres DB 의 비밀번호 암호화 파라미터 값을 MD5로 설정하는 것으로 해결할 수 있습니다.
실제로 DB에 접속해보면 암호화 알고리즘이 scram-sha-256로 설정되어 있는 것을 확인하실 수 있습니다.
SHOW password_encryption; password_encryption --------------------- scram-sha-256 (1 row)
또한, DB 유저도 scram-sha-256 를 사용하고 있는 것을 보실 수 있습니다.
SELECT * FROM rds_tools.role_password_encryption_type(); pg_database_owner | pg_read_all_data | pg_write_all_data | pg_monitor | pg_read_all_settings | pg_read_all_stats | pg_stat_scan_tables | pg_signal_backend | pg_checkpoint | pg_use_reserved_connections | pg_create_subscription | postgres | scram-sha-256
해결 방법
직접 관리자 권한의 유저로 DB에 접속한 뒤, 암호화 알고리즘 파라미터를 MD5로 설정합니다. 그리고 QuickSight가 사용할 유저를 다시 생성해주는 것으로 해결할 수 있습니다.
/* 암호화 알고리즘을 MD5로 설정합니다 */ SET password_encryption = 'md5'; /* QuickSight가 사용할 유저를 생성합니다 */ CREATE 유저명 WITH PASSWORD '비밀번호'; /* 해당 유저에 적절한 권한을 부여합니다 */ GRANT CONNECT ON DATABASE 데이터베이스명 TO 유저명;
설정을 마친 후 DB와 유저의 비밀번호 암호화 파라미터가 MD5로 설정 되어있는 것을 확인할 수 있습니다.
생성된 유저의 파라미터 값이 MD5인 것을 확인해주세요. 만약 MD5가 아니거나 아무것도 표시 되어 있지 않다면, 같은 에러가 발생합니다.
- DB의 암호화 방식 설정값
SHOW password_encryption; password_encryption --------------------- md5 (1 row)
- 유저의 암호화 방식 설정값
SELECT * FROM rds_tools.role_password_encryption_type(); pg_database_owner | pg_read_all_data | pg_write_all_data | pg_monitor | pg_read_all_settings | pg_read_all_stats | pg_stat_scan_tables | pg_signal_backend | pg_checkpoint | pg_use_reserved_connections | pg_create_subscription | postgres | scram-sha-256 user_qs | md5
설정을 마친 후, QuickSight 대시보드로 이동하여 새롭게 생성된 유저를 사용한 접속 확인을 진행합니다.
확인이 성공하면 데이터 세트를 작성할 수 있습니다.
끝으로
이번 오류의 경우, 비밀번호의 암호화 알고리즘이 원인이었습니다.
이러한 오류 뿐만 아니라 유저에게 적절한 권한이 부여되지 않아 발생하는 경우도 빈번하기 때문에, 새로운 유저를 생성할 때 필요한 권한을 부여하는 것을 잘 확인해주세요.